class MyThread extends Thread {
/*	public MyThread(String name) {
		super(name);
	}*/
    Thread t2 = new Thread(this);
    static Thread t3 = new Thread(new Runnable() {
		@Override
		public void run() {
			System.out.println("git提交时Warning:(6, 28) Instantiating a 'Thread' with default 'run()' method");
		}
	});
	public void run() {
		super.run();
		System.out.println("Thread.currentThread().getName()是"+Thread.currentThread().getName());
		System.out.println("MyThread == "+this.isAlive());

		synchronized(this) {
			System.out.println(Thread.currentThread().getName() + "调用notify()方法");
			// 唤醒当前的wait线程
			notify();
		}

		synchronized(Color.RED) {
			System.out.println(Thread.currentThread().getName() + "也可以写成synchronized(getColor())");
			// 唤醒当前的wait线程
//			notify();
		}
	}

	public enum Color {
		RED, GREEN, BLANK, YELLOW
	}

/*	public enum getEnum() {
		return
	}*/
	public static void main(String[] args) throws InterruptedException {
		MyThread myThread = new MyThread();
		myThread.start();
		myThread.sleep(100); //为了让run方法执行完，故睡眠一定时间

		Thread t1 = new Thread(myThread);
		Thread t5 = new Thread(new Thread(new Thread(new MyThread())));
//		Thread t2 = new Thread(this);

		t1.start();
		t3.start();
		t5.start();
	}

}

/*根据运行结果：我们知道一个true，一个false说明了this和Thread.currentTread()指向不是同一个线程实例
		   根据运行的顺序，第一个指向mythread ( MyThread myThread = new MyThread() )，而第二个指向t1。
		   所以可以知道this指向的是本类（MyThread）实例化的对象。而new Thread(…)创建的实例是t1，它指向的是Thread。
		总结：
		this指向的是创建的线程实例（myThread），而不是Thread。
		Thread.currentTread()指向Thread类实例，也就可以调用其中的一些方法了。*/
